/**
 * @file user.js
 * @description 用户管理相关的API接口
 * @created 2024-06-01
 */

import request from '@/utils/request'

/**
 * 获取用户列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.limit - 每页数量
 * @param {string} params.keyword - 搜索关键词
 * @returns {Promise} 用户列表数据
 */
export function getUserList(params) {
  return request({
    url: '/admin/user/list',
    method: 'get',
    params
  })
}

/**
 * 添加用户
 * @param {Object} data - 用户数据
 * @returns {Promise} 添加结果
 */
export function addUser(data) {
  return request({
    url: '/admin/user/add',
    method: 'post',
    data
  })
}

/**
 * 更新用户信息
 * @param {Object} data - 用户数据
 * @returns {Promise} 更新结果
 */
export function updateUser(data) {
  return request({
    url: `/admin/user/update/${data.id}`,
    method: 'put',
    data
  })
}

/**
 * 删除用户
 * @param {number|string} id - 用户ID
 * @returns {Promise} 删除结果
 */
export function deleteUser(id) {
  return request({
    url: `/admin/user/delete/${id}`,
    method: 'delete'
  })
}

/**
 * 重置用户密码
 * @param {number|string} id - 用户ID
 * @returns {Promise} 重置结果
 */
export function resetUserPassword(id) {
  return request({
    url: `/admin/user/reset-password/${id}`,
    method: 'post'
  })
}

/**
 * 切换用户状态
 * @param {number|string} id - 用户ID
 * @param {number} status - 状态: 1-启用, 0-禁用
 * @returns {Promise} 切换结果
 */
export function toggleUserStatus(id, status) {
  return request({
    url: `/admin/user/toggle-status/${id}`,
    method: 'put',
    data: { status }
  })
}

/**
 * 获取当前用户信息
 * @returns {Promise} 用户信息
 */
export function getCurrentUser() {
  return request({
    url: '/user/info',
    method: 'get'
  })
}

/**
 * 用户注销
 * @returns {Promise} 注销结果
 */
export function logout() {
  return request({
    url: '/user/logout',
    method: 'post'
  })
} 